jQuery(document).ready(function () {
	!function () {

		var handleTheme = function () {
			var panel = $('.theme-panel');

			if ($('body').hasClass('page-boxed') === false) {
				$('.layout-option', panel).val("fluid");
			}
			$('.sidebar-option', panel).val("default");
			$('.page-header-option', panel).val("fixed");
			$('.page-footer-option', panel).val("default");
			if ($('.sidebar-pos-option').attr("disabled") === false) {
				$('.sidebar-pos-option', panel).val(App.isRTL() ? 'right' : 'left');
			}
			//handle theme layout
			var resetLayout = function () {
				$("body").removeClass("page-boxed").removeClass("page-footer-fixed").removeClass("page-sidebar-fixed").removeClass("page-header-fixed").removeClass("page-sidebar-reversed");
				$('.page-header > .page-header-inner').removeClass("container");
				if ($('.page-container').parent(".container").size() === 1) {
					$('.page-container').insertAfter('body > .clearfix');
				}
				if ($('.page-footer > .container').size() === 1) {
					$('.page-footer').html($('.page-footer > .container').html());
				} else if ($('.page-footer').parent(".container").size() === 1) {
					$('.page-footer').insertAfter('.page-container');
					$('.scroll-to-top').insertAfter('.page-footer');
				}
				$(".top-menu > .navbar-nav > li.dropdown").removeClass("dropdown-dark");
				$('body > .container').remove();
			};
			var lastSelectedLayout = '';
			var setLayout = function () {
				var layoutOption = $('.layout-option', panel).val();
				var sidebarOption = $('.sidebar-option', panel).val();
				var headerOption = $('.page-header-option', panel).val();
				var footerOption = $('.page-footer-option', panel).val();
				var sidebarPosOption = $('.sidebar-pos-option', panel).val();
				var sidebarStyleOption = $('.sidebar-style-option', panel).val();
				var sidebarMenuOption = $('.sidebar-menu-option', panel).val();
				var headerTopDropdownStyle = $('.page-header-top-dropdown-style-option', panel).val();

				if (sidebarOption === "fixed" && headerOption === "default") {
					alert('Default Header with Fixed Sidebar option is not supported. Proceed with Fixed Header with Fixed Sidebar.');
					$('.page-header-option', panel).val("fixed");
					$('.sidebar-option', panel).val("fixed");
					sidebarOption = 'fixed';
					headerOption = 'fixed';
				}

				resetLayout(); // reset layout to default state
				if (layoutOption === "boxed") {
					$("body").addClass("page-boxed");
					// set header
					$('.page-header > .page-header-inner').addClass("container");
					var cont = $('body > .page-wrapper > .clearfix').after('<div class="container"></div>');

					// set content
					$('.page-container').appendTo('body > .page-wrapper > .container');

					// set footer
					if (footerOption === 'fixed') {
						$('.page-footer').html('<div class="container">' + $('.page-footer').html() + '</div>');
					} else {
						$('.page-footer').appendTo('body > .page-wrapper > .container');
					}
				}

				if (lastSelectedLayout != layoutOption) {
					//layout changed, run responsive handler:
					App.runResizeHandlers();
				}
				lastSelectedLayout = layoutOption;

				//header
				if (headerOption === 'fixed') {
					$("body").addClass("page-header-fixed");
					$(".page-header").removeClass("navbar-static-top").addClass("navbar-fixed-top");
				} else {
					$("body").removeClass("page-header-fixed");
					$(".page-header").removeClass("navbar-fixed-top").addClass("navbar-static-top");
				}

				//sidebar
				if ($('body').hasClass('page-full-width') === false) {
					if (sidebarOption === 'fixed') {
						$("body").addClass("page-sidebar-fixed");
						$("page-sidebar-menu").addClass("page-sidebar-menu-fixed");
						$("page-sidebar-menu").removeClass("page-sidebar-menu-default");
						Layout.initFixedSidebarHoverEffect();
					} else {
						$("body").removeClass("page-sidebar-fixed");
						$("page-sidebar-menu").addClass("page-sidebar-menu-default");
						$("page-sidebar-menu").removeClass("page-sidebar-menu-fixed");
						$('.page-sidebar-menu').unbind('mouseenter').unbind('mouseleave');
					}
				}

				// top dropdown style
				if (headerTopDropdownStyle === 'dark') {
					$(".top-menu > .navbar-nav > li.dropdown").addClass("dropdown-dark");
				} else {
					$(".top-menu > .navbar-nav > li.dropdown").removeClass("dropdown-dark");
				}

				//footer
				if (footerOption === 'fixed') {
					$("body").addClass("page-footer-fixed");
				} else {
					$("body").removeClass("page-footer-fixed");
				}

				//sidebar style
				if (sidebarStyleOption === 'light') {
					$(".page-sidebar-menu").addClass("page-sidebar-menu-light");
				} else {
					$(".page-sidebar-menu").removeClass("page-sidebar-menu-light");
				}

				//sidebar menu
				if (sidebarMenuOption === 'hover') {
					if (sidebarOption == 'fixed') {
						$('.sidebar-menu-option', panel).val("accordion");
						alert("Hover Sidebar Menu is not compatible with Fixed Sidebar Mode. Select Default Sidebar Mode Instead.");
					} else {
						$(".page-sidebar-menu").addClass("page-sidebar-menu-hover-submenu");
					}
				} else {
					$(".page-sidebar-menu").removeClass("page-sidebar-menu-hover-submenu");
				}

				//sidebar position
				if (App.isRTL()) {
					if (sidebarPosOption === 'left') {
						$("body").addClass("page-sidebar-reversed");
						$('#frontend-link').tooltip('destroy').tooltip({
							placement: 'right'
						});
					} else {
						$("body").removeClass("page-sidebar-reversed");
						$('#frontend-link').tooltip('destroy').tooltip({
							placement: 'left'
						});
					}
				} else {
					if (sidebarPosOption === 'right') {
						$("body").addClass("page-sidebar-reversed");
						$('#frontend-link').tooltip('destroy').tooltip({
							placement: 'left'
						});
					} else {
						$("body").removeClass("page-sidebar-reversed");
						$('#frontend-link').tooltip('destroy').tooltip({
							placement: 'right'
						});
					}
				}

				Layout.fixContentHeight(); // fix content height
				Layout.initFixedSidebar(); // reinitialize fixed sidebar
			};

			// handle theme colors
			var setColor = function (color) {
				var color_ = (App.isRTL() ? color + '-rtl' : color);
				$('#style_color').attr("href", Layout.getLayoutCssPath() + 'themes/' + color_ + ".min.css");
				if (color == 'light2') {
					$('.page-logo img').attr('src', (window.HOST_S||"")+'/assets/ditop/img/logo/logo-invert.png');
				} else {
//						$('.page-logo img').attr('src', Layout.getLayoutImgPath() + 'logo.png');
					$('.page-logo img').attr('src', (window.HOST_S||"")+'/assets/ditop/img/logo/logo.png');
				}
			};

			$('.toggler', panel).click(function () {
				$('.toggler').hide();
				$('.toggler-close').show();
				$('.theme-panel > .theme-options').show();
			});

			$('.toggler-close', panel).click(function () {
				$('.toggler').show();
				$('.toggler-close').hide();
				$('.theme-panel > .theme-options').hide();
			});

			$('.theme-colors > ul > li', panel).click(function () {
				var color = $(this).attr("data-style");
				setColor(color);
				$('ul > li', panel).removeClass("current");
				$(this).addClass("current");
			});

			// set default theme options:

			if ($("body").hasClass("page-boxed")) {
				$('.layout-option', panel).val("boxed");
			}

			if ($("body").hasClass("page-sidebar-fixed")) {
				$('.sidebar-option', panel).val("fixed");
			}

			if ($("body").hasClass("page-header-fixed")) {
				$('.page-header-option', panel).val("fixed");
			}

			if ($("body").hasClass("page-footer-fixed")) {
				$('.page-footer-option', panel).val("fixed");
			}

			if ($("body").hasClass("page-sidebar-reversed")) {
				$('.sidebar-pos-option', panel).val("right");
			}

			if ($(".page-sidebar-menu").hasClass("page-sidebar-menu-light")) {
				$('.sidebar-style-option', panel).val("light");
			}

			if ($(".page-sidebar-menu").hasClass("page-sidebar-menu-hover-submenu")) {
				$('.sidebar-menu-option', panel).val("hover");
			}

			var sidebarOption = $('.sidebar-option', panel).val();
			var headerOption = $('.page-header-option', panel).val();
			var footerOption = $('.page-footer-option', panel).val();
			var sidebarPosOption = $('.sidebar-pos-option', panel).val();
			var sidebarStyleOption = $('.sidebar-style-option', panel).val();
			var sidebarMenuOption = $('.sidebar-menu-option', panel).val();

			$('.layout-option, .page-header-option, .page-header-top-dropdown-style-option, .sidebar-option, .page-footer-option, .sidebar-pos-option, .sidebar-style-option, .sidebar-menu-option', panel).change(setLayout);
		};

		// handle theme style
		var setThemeStyle = function (style) {
			var file = (style === 'rounded' ? 'components-rounded' : 'components');
			file = (App.isRTL() ? file + '-rtl' : file);

			$('#style_components').attr("href", App.getGlobalCssPath() + file + ".min.css");

			if (typeof Cookies !== "undefined") {
				Cookies.set('layout-style-option', style);
			}
		};

		return {

			//main function to initiate the theme
			init: function () {
				// handles style customer tool
				handleTheme();

				// handle layout style change
				$('.theme-panel .layout-style-option').change(function () {
					setThemeStyle($(this).val());
				});

				// set layout style from cookie
				if (typeof Cookies !== "undefined" && Cookies.get('layout-style-option') === 'rounded') {
					setThemeStyle(Cookies.get('layout-style-option'));
					$('.theme-panel .layout-style-option').val(Cookies.get('layout-style-option'));
				}
			}
		};

	}().init();
});
